package com.lanchetech.common.enums;

import lombok.Getter;

@Getter
public enum UserCommissionTypeEnum {
    PRODUCT((byte) 0, "商品佣金"),
    CONSUME((byte) 1, "消费佣金"),
    SECOND_PRODUCT((byte) 2, "商品二级佣金"),
    SHARE((byte) 3, "分享奖励"),
    SERVICE((byte) 4, "团队服务奖"),

    MEMBER_BONUS((byte) 5, "会员广告补贴"),
    PARTNER_BONUS((byte) 6, "合伙人广告补贴"),
    SHAREHOLDER_BONUS((byte) 7, "运营中心广告补贴"),

    MEMBER_SHARE_COMMISSION((byte) 8, "会员直推业绩佣金"), //
    PARTNER_SHARE_COMMISSION((byte) 9, "合伙人直推业绩佣金"),
    SHAREHOLDER_SHARE_COMMISSION((byte) 10, "运营中心直推业绩佣金"),

    PARTNER_GROUP_COMMISSION((byte) 11, "合伙人服务奖"), // 合伙人服务奖
    SHAREHOLDER_GROUP_COMMISSION((byte) 12, "运营中心服务奖"), // 运营中心服务奖

    MEMBER_L2_DIVIDENDS((byte) 13, "主管分红"),
    MEMBER_L3_DIVIDENDS((byte) 14, "经理分红"),
    MEMBER_L4_DIVIDENDS((byte) 15, "总监分红"),

    PARTNER_L2_DIVIDENDS((byte) 16, "主管分红"),
    PARTNER_L3_DIVIDENDS((byte) 17, "经理分红"),
    PARTNER_L4_DIVIDENDS((byte) 18, "总监分红"),

    SHAREHOLDER_L2_DIVIDENDS((byte) 19, "副总裁分红"),
    SHAREHOLDER_L3_DIVIDENDS((byte) 20, "总裁分红"),
    SHAREHOLDER_L4_DIVIDENDS((byte) 21, "董事分红"),

    SHOP_COMMISSION((byte) 22, "单店分红"),

    MEMBER_L4_BONUS((byte) 23, "晋级总监奖励(元)"),
    PARTNER_L4_BONUS((byte) 24, "晋级总监奖励(元)"),
    SHAREHOLDER_L4_BONUS((byte) 25, "晋级董事奖励(元)"),
    COURIER_COMMISSION((byte) 26, "省市区快递收件费"),
    SHAREHOLDER_INCOME_COMMISSION((byte) 27, "运营中心收入提点"),
    REWARD_QUEUE_COMMISSION((byte) 28, "免单补贴"),
    SHOP_ORDER((byte) 29, "商户订单收入"),
    PROVINCE_DIVIDENDS((byte) 30, "省级代理区域分红"),
    CITY_DIVIDENDS((byte) 31, "市级代理区域分红"),
    AREA_DIVIDENDS((byte) 32, "区级代理区域分红"),

    PROVINCE_REWARD_QUEUE_COMMISSION((byte) 33, "省级代理免单补贴"),
    CITY_REWARD_QUEUE_COMMISSION((byte) 34, "市级代理免单补贴"),
    AREA_REWARD_QUEUE_COMMISSION((byte) 35, "区级代理免单补贴"),

    SHOP_RECOMMEND_BONUS((byte) 36, "推荐门店业绩佣金"),
    MANAGE_ADD((byte) 37, "管理员赠送佣金"),

    PARTNER_RECOMMEND_PARTNER_COMMISSION((byte) 38, "合伙人推荐合伙人佣金"),
    SHAREHOLDER_RECOMMEND_PARTNER_COMMISSION((byte) 39, "运营中心推荐合伙人佣金"),
    AREA_PARTNER_COMMISSION((byte) 40, "区域中心发展合伙人佣金"),
    ANCHOR_COMMISSION((byte) 41, "主播带货佣金"),
    PARTNER_ANCHOR_COMMISSION((byte) 42, "合伙人享受主播收入佣金"),
    SHAREHOLDER_ANCHOR_COMMISSION((byte) 43, "运营中心享受主播收入佣金"),
    AREA_ANCHOR_COMMISSION((byte) 44, "区域中心享受主播收入佣金"),
    PARTNER_RANK_REWARD((byte) 45, "讲师业绩月排行榜奖励"),
    AREA_MEMBER_COMMISSION((byte) 46, "区域中心发展会员佣金"),
    BOSS_INVITE_COMMISSION((byte) 47, "老板推荐佣金"),
    MEMBER_INVITE_COMMISSION((byte) 48, "会员邀请奖励"),
    MEMBER_GROUP_COMMISSION((byte) 49, "会员服务奖"),
    DIRECTOR_COMMISSION((byte) 50, "联合创始人分红"),
    PARTNER_GET_FROM_MEMBER((byte) 51, "合伙人享受会员直推收入"),
    SHAREHOLDER_GET_FROM_PARTNER_SALE((byte) 52, "运营中心直推收入"),
    SHAREHOLDER_GET_FROM_SHAREHOLDER_SALE((byte) 53, "运营中心直推收入"), // 运营中心服务收入
    STATIC_DIVIDEND((byte) 54, "活动补贴"),
    PARTNER_GET_FROM_PARTNER_SALE((byte) 55, "合伙人直推收入"),
    MEMBER_L2_SHARE_COMMISSION((byte) 56, "主管直推佣金"),
    MEMBER_L2_FROM_MEMBER_L2_SALE((byte) 57, "主管直推收入"),
    MEMBER_L2_SERVICE_SALE((byte) 58, "主管服务奖"),
    COMPANY_COMMISSION((byte) 59, "分公司直推佣金"),
    COMPANY_GROUP_COMMISSION((byte) 60, "分公司团队业绩佣金"),
    SHAREHOLDER_GROUP_COMMISSION2((byte) 61, "合伙人团队业绩佣金"),
    REWARD_WELFARE((byte) 62, "释放福利补贴佣金"),
    LOVE_COMMISSION((byte) 63, "爱心奖"),
    THANKFUL_COMMISSION((byte) 64, "感恩奖"),
    VIP_CHANCE_COMMISSION((byte) 65, "VIP会员佣金机会奖励"),
    PARTNER_SPU_COMMISSION((byte) 66, "商品差价"),
    PARTNER_PURCHASE_COMMISSION((byte) 67, "小店进货业绩佣金"),
    RUSH_SUCCESS_COMMISSION((byte) 68, "团队直推抢购免单成功业绩收入"),
    DIRECT_RECOMMEND_COMMISSION((byte) 69, "直推佣金加速释放福利补贴"),

    CO_FOUNDER_DIRECT_PUSH_REBATE((byte) 70, "联合创始人直推佣金收入"),
    SHARE_COMMISSION((byte) 71, "分享赚直推佣金收入");

    private Byte type;
    private String remark;

    UserCommissionTypeEnum(Byte type, String remark) {
        this.type = type;
        this.remark = remark;
    }

    public static UserCommissionTypeEnum getByType(Byte type) {
        for (UserCommissionTypeEnum item : UserCommissionTypeEnum.values()) {
            if (item.getType().equals(type)) {
                return item;
            }
        }
        return null;
    }
}
